﻿using Futuret.Repositor.Base.Entity;
using SqlSugar;

namespace Futuret.Sys.Model.Entity.Sys;

/// <summary>
///     Author: Riva
///     Date: 2023/7/11 14:41
///     Description:用户表
/// </summary>
[SugarTable(nameof(SysUser), "系统用户表")]
public class SysUser : BaseEntity
{
    /// <summary>
    ///     账号
    /// </summary>
    [SugarColumn(ColumnName = "Account", ColumnDescription = "账号", Length = 200, IsNullable = false)]
    public string Account { get; set; } = null!;

    /// <summary>
    ///     密码
    /// </summary>
    [SugarColumn(ColumnName = "Password", ColumnDescription = "密码", Length = 200, IsNullable = false)]
    public string Password { get; set; } = null!;

    /// <summary>
    ///  个人密钥
    ///</summary>
    [SugarColumn(ColumnName = "Signature", ColumnDescription = "签名", ColumnDataType = StaticConfig.CodeFirst_BigString,
        IsNullable = true)]
    public string? Signature { get; set; }

    /// <summary>
    ///     姓名
    /// </summary>
    [SugarColumn(ColumnName = "Name", ColumnDescription = "姓名", Length = 200, IsNullable = true)]
    public string? Name { get; set; }

    /// <summary>
    /// 昵称
    ///</summary>
    [SugarColumn(ColumnName = "Nickname", ColumnDescription = "昵称", Length = 200, IsNullable = true)]
    public string? Nickname { get; set; }

    /// <summary>
    /// 性别
    ///</summary>
    [SugarColumn(ColumnName = "Gender", ColumnDescription = "性别", Length = 200, IsNullable = true)]
    public string? Gender { get; set; }

    /// <summary>
    /// 出生日期
    ///</summary>
    [SugarColumn(ColumnName = "Birthday", ColumnDescription = "出生日期", Length = 200, IsNullable = true)]
    public DateTime? Birthday { get; set; }
    
    /// <summary>
    /// 手机号
    ///</summary>
    [SugarColumn(ColumnName = "Phone", ColumnDescription = "手机", Length = 200, IsNullable = true)]
    public string? Phone { get; set; }
    
    /// <summary>
    /// 邮箱
    ///</summary>
    [SugarColumn(ColumnName = "Email", ColumnDescription = "邮箱", Length = 200, IsNullable = true)]
    public string? Email { get; set; }
}